package com.colin.app.bean;

/**
 * Created by Colin on 2017/2/23.
 * 创建时需要消耗很多资源，即new出这个类的代价很大；
 * 或者是这个类占用很多内存，如果创建太多这个类实例会导致内存占用太多。
 * http://blog.csdn.net/jason0539/article/details/23297037/
 * 既实现了线程安全，又避免了同步带来的性能影响。
 * 利用了classloader的机制来保证初始化instance时只有一个线程，所以也是线程安全的，同时没有性能损耗
 */

public class Singleton3 {
    /**
     * 利用了classloader的机制来保证初始化instance时只有一个线程
     */
    private static class LazyHolder {
        private static final Singleton3 INSTANCE = new Singleton3();
    }

    private Singleton3() {
    }

    public static final Singleton3 getInstance() {
        return LazyHolder.INSTANCE;
    }


}
